package com.cy.api;
import java.lang.annotation.*;
import java.lang.reflect.Field;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface Entity{
    String value() default "";
}

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.METHOD})
@interface ID{
    String value() default "";
}

@Entity("t_user")
class User{
    @ID("uid")
    private Integer id;
}

public class AnnotationTests {
    public static void main(String[] args) throws NoSuchFieldException {
        //1 获取user类上的entity注解的内容
        //1）获取User类的字节码对象
        Class<?> tClz=User.class;
        //获取User类上的entity注解
       Entity entity= tClz.getAnnotation(Entity.class);
       //获取entity的注解value属性
     String ev=   entity.value();
        System.out.println(ev);
       String entityValue= User.class.getAnnotation(Entity.class).value();
        System.out.println(entityValue);
        // 获取ID注解的Value属性

        Field f =  tClz.getDeclaredField("id");//获取id属性的类中的所有属性

        ID id= (ID) f.getAnnotation(ID.class);  //ID属性的注解值
      //  System.out.println(ID.class);
        String iv=id.value(); //注解的参数
        System.out.println(iv);
    }
}























